package com.megaspacevr.service;

import com.megaspacevr.entity.PersonalInfo;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * <p>
 * 个人信息表-用户填写的个人资料 服务类
 * </p>
 *
 * @author yezi
 * @since 2025-06-17
 */
public interface PersonalInfoService extends IService<PersonalInfo> {

    /**
     * 保存或更新个人信息
     * @param personalInfo 个人信息对象
     * @return 保存的个人信息
     */
    PersonalInfo saveOrUpdatePersonalInfo(PersonalInfo personalInfo);

    /**
     * 根据userToken获取个人信息
     * @param userToken 用户标识
     * @return 个人信息
     */
    PersonalInfo getPersonalInfoByUserToken(String userToken);

    /**
     * 检查手机号是否已存在
     * @param phone 手机号
     * @param excludeId 排除的ID（用于更新时排除自己）
     * @return 是否存在
     */
    boolean isPhoneExists(String phone, Long excludeId);

    /**
     * 设置默认个人信息
     * @param userToken 用户标识
     * @param personalInfoId 个人信息ID
     */
    void setDefaultPersonalInfo(String userToken, Long personalInfoId);

    /**
     * 根据手机号获取个人信息
     * @param phone 手机号
     * @return 个人信息
     */
    PersonalInfo getPersonalInfoByPhone(String phone);
}
